// P2516 write by cn_ryh